1. Field of the Invention
The present invention relates to the field of computer systems. More specifically, the present invention relates to system suspend and resume methodology and applications.
2. Background Information
Hard disk drive spinup time may significantly increase microprocessor based system resume time. In recent years, the performance of personal computer systems has increased dramatically. Processor performance has increased from a typical speed of 16 MHz to a typical speed of over 200 MHz. While the performance of the microprocessor and other components of personal computer systems has improved dramatically, the performance improvements of certain components have not kept pace; in particular, hard disk drives are often one element of such systems that may degrade overall system performance.
Because of their mechanical design, hard disk dries are typically one of the primary contributors in increasing the time required for a system to resume from a suspend state when power conservation methods are implemented. In order to lower power consumption, in particular in order to comply with developing regulatory standards, systems are designed to enter a suspend state if no user or other activity is detected for a certain amount of time, or through other methods, for example, by a user command such as the xe2x80x9cSuspendxe2x80x9d menu command available in the Windows 95(copyright) operating system. Among suspend methods, the two commonly used are xe2x80x9csuspend to RAMxe2x80x9d and xe2x80x9csuspend to disk.xe2x80x9d When used herein, xe2x80x9csuspendxe2x80x9d will refer to suspend to RAM and not to suspend to disk. Suspend to disk requires the state of the computer system, including much of the information stored in random access memory (xe2x80x9cRAMxe2x80x9d), to be saved to the hard disk drive. During suspend to RAM the state of the processor and the operating system (xe2x80x9cOSxe2x80x9d) is saved to a region of RAM, system components power down or enter a suspend state, and the RAM is operated in a low power mode with periodic refreshes, retaining the information it stores.
When the system suspends, applications are notified, peripheral devices are powered down, and the processor is suspended. The state of the systemxe2x80x94e.g. software and data which are in memoryxe2x80x94is not lost, as the system RAM is not powered down. When user or other activity is detected, or an internal event such as a timer expiration occurs, the processor and peripherals are activated, and applications resume their execution. A user reactivating the system may expect that the system function with a xe2x80x9cconsumer electronics feelxe2x80x9d, where the system responds to the user input virtually immediately instead of after a delay. In addition, the activity causing the resume operation may be an external event to which the system must respond within a certain amount of time, such as an external telephone call for a facsimile or modem transmission where the calling party or device may hang up if a response is not detected after a certain number of rings.
During the resume operation the operating system (xe2x80x9cOSxe2x80x9d), peripherals, applications, or other system components may require information, such as instructions and data, which are normally stored on the hard disk drive. During the suspend state, the hard disk drive stops rotating its disk or disks. During a resume operation it may typically take 10 to 15 seconds for the disk(s) to attain their operational rotational speed; on certain systems this time may be as long as 30 seconds. Thus certain resume data may typically only be available to system components 10 to 15 seconds after the resume operation commences. This does not allow for the system to have the same feel as other consumer electronic devices, and prevents the system from reacting to certain resume activity, such as a facsimile or modem incoming telephone call within a required amount of time.
Thus, improved performance during a resume operation is desirable, and as will be disclosed in more detail below, the present invention provides the improvement in performance as well as other desirable results, which will be readily apparent to those skilled in the art, upon reading the detailed description to follow.
A method is disclosed for expediting the resume operation of a computer system. Before the system enters a suspend state, the disk data which is likely to be needed by the computer system during the resume operation is pre-loaded from the disk. The system determines which disk data is needed during previous resume operations. The data pre-loaded from the disk may be loaded into a cache utilized by the input/output (xe2x80x9cI/Oxe2x80x9d) system.